import http from 'wechat-http'
http.baseURL = 'https://live-api.itheima.net'
// 请求拦截器
http.intercept.request = (confing) => {
  // console.log(confing);
  //获取token
  const token = getApp().token
  // console.log(confing,token);
  //判断是否有头肯
  if (token && !confing.url.includes('/refreshToken')) {
    //  判断 请求头有没有因为如果没有的时候会报错
    // 做了一个优化 如果有请求头让他等于自己 没有就等于空对象
    confing.header = confing.header || {}
    // 请求头存放token
    confing.header.Authorization = token
  }
  return confing
}
http.intercept.response = async (res) => {
  // console.log(res, 11111111111111111);
  // console.log(res.statusCode);
  if (res.statusCode === 401) {
    // console.log(res.config);
    // 当页面等于401而且请求接口包含了refreshToken我们需要跳转到登入页面重新获取token
    if (res.config.url.includes('/refreshToken')) {
      //获取全部页面路径实例 这样我们在点击登入的时候 可以接收到 路径 随后跳转到 房屋页面
      const pageStack = getCurrentPages()
      // console.log(pageStack, '1213sdasdasdad');
      const currentPage = pageStack[pageStack.length - 1].route
      wx.redirectTo({
        url: '/pages/login/index?route=/' + currentPage,
      })
      // 相当于 解套 这是响应拦截器要返回数据
      return res.data
      // 首页 房屋 房屋
    }
    // 请求刷新token接口
    const {
      code,
      data
    } = await wx.http({
      url: '/refreshToken',
      method: 'POST',
      header: {
        Authorization: getApp().refreshToken
      }
    })
    console.log(res);
    if (code !== 10000) return wx.utils.toast()
    getApp().setToken(data.token, data.refreshToken)
    // 如果token错误了 我们需要重新调用一下token的接口 让那个页面重新获取数据 这样才能渲染页面
    const resd = await wx.http({
      ...res.config
    })
    return resd
  }

  return res.data


}
wx.http = http